package com.artezio.task.dto;


import com.artezio.task.model.Contact;
import com.artezio.task.model.ContactTelDetail;

import javax.validation.Valid;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.List;

public class FormatDataDto {
    private static final long serialVersionUID = 1L;

    private int id;
    private int idNumber;
    @Valid
    @Size(min = 1, max = 20, message = "имя должно быть от 1 до 20-ти символов")
    private String firstName;
    @Valid
    @Size(min = 1, max = 20, message = "фамилия должна быть от 1 до 20-ти символов")
    private String lastName;
    //    @Valid
//    @Pattern(regexp = "^[0-9]+$", message = "только цифры")
//    private String numberOne="";
//    private String typeNumOne="";
    @Valid
    @Pattern(regexp = "^[0-9]+$", message = "только цифры")
    private String numberTwo;
    private String typeNumTwo;
    private List<ContactTelDetail> contactTelDetails = new ArrayList<ContactTelDetail>();


    public FormatDataDto() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

//    public String getNumberOne() {
//        return numberOne;
//    }
//
//    public void setNumberOne(String numberOne) {
//        this.numberOne = numberOne;
//    }
//
//    public String getTypeNumOne() {
//        return typeNumOne;
//    }
//
//    public void setTypeNumOne(String typeNumOne) {
//        this.typeNumOne = typeNumOne;
//    }

    public String getNumberTwo() {
        return numberTwo;
    }

    public void setNumberTwo(String numberTwo) {
        this.numberTwo = numberTwo;
    }

    public String getTypeNumTwo() {
        return typeNumTwo;
    }

    public void setTypeNumTwo(String typeNumTwo) {
        this.typeNumTwo = typeNumTwo;
    }

    //инициализация DTO  через контакт
    public void initContact(Contact contact) {
        id = contact.getId();
        firstName = contact.getFirstName();
        lastName = contact.getLastName();
        contactTelDetails = contact.getContactTelDetails();
    }

    //Инициализация DTO  через номер
    public void initByContNumber(ContactTelDetail det) {
        numberTwo = det.getTelNumber();
        typeNumTwo = det.getTelType();
        idNumber = det.getId();
    }

    public List<ContactTelDetail> getContactTelDetails() {
        return contactTelDetails;
    }

    public void setContactTelDetails(List<ContactTelDetail> contactTelDetails) {
        this.contactTelDetails = contactTelDetails;
    }

    public int getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(int idNumber) {
        this.idNumber = idNumber;
    }


}
